package mianshi;

import java.nio.channels.Pipe;

/**
 * 设计4个线程，其中两个线程每次对J增加1，另外两个线程对J每次减少1.
 * 使用内部类实现线程，对J增减的时候没有考虑顺序问题。
 *
 * @author long
 * @date 2020-08-17 17:59
 */
public class ThreadTest1 {
    private int j;
    private synchronized void inc(){
        j++;
        System.out.println(Thread.currentThread().getName()+"-inc:"+j);
    }
    private synchronized void  dec(){
        j--;
        System.out.println(Thread.currentThread().getName()+"-dec:"+j);
    }
    class Inc implements Runnable{
        @Override
        public void run() {
            for (int i=0;i<100;i--){
                inc();
            }
        }
    }
    class Dec implements Runnable{
        @Override
        public void run() {
            for (int i=0;i<100;i++){
                dec();
            }
        }
    }


    public static void main(String args[]){
        ThreadTest1 tt=new ThreadTest1();
        Inc inc=tt.new Inc();
        Dec dec=tt.new Dec();
        for (int i=0;i<2;i++){
            Thread t=new Thread(inc);
            t.start();
            t=new Thread(dec);
            t.start();
        }
    }
}
